package com.ruifu.common.po;


import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/***
 * 项目、任务主实体类
 */
@Data
public class PmPtMain implements Serializable {

    private static final long serialVersionUID = 6225931424733017344L;
    /**
     * 项目任务ID，整型
     */
    private Long ptId;
    /**
     * 任务的父任务ID
     */
    private Long ptPId;
    /**
     * 对象类别，P表示项目；T表示任务
     */
    private String ptPtm;
    /**
     * 是否作为模板
     */
    private Boolean ptIsTemplate;
    /**
     * 项目或任务的编号;父任务code_本任务ID;
     */
    private String ptCode;
    /**
     * 项目或任务的名称
     */
    private String ptName;
    /**
     * 外键，PM_ptype表ID引用
     */
    private Long ptTypeId;
    /**
     * 数值枚举类型，4，绝密；3，机密；2，保密；1，一般；
     */
    private Long ptSafeLevel;
    /**
     * 项目特性，枚举值，‘M’重要；‘N’一般；
     */
    private String ptSpecial;
    /**
     * 项目任务委托人用户ID链，张三委托李四，李四委托王五（3,4,5）
     */
    private String ptAssignors;
    /**
     * 项目任务审核人用户ID链
     */
    private String ptAudits;
    /**
     * 项目任务执行人ID
     */
    private Long ptExecuter;
    /**
     * 项目任务预算工期天数记录字段，整数
     */
    private BigDecimal ptDays;
    /**
     * 项目任务预算工期小时记录字段，支持两位小数点
     */
    private BigDecimal ptHours;
    /**
     * 项目、任务计划开始时间
     */
    private Date ptPlanStart;
    /**
     * 项目、任务计划结束时间
     */
    private Date ptPlanEnd;
    /**
     * 对于任务，可设置任务为里程碑；
     */
    private Boolean ptMilestone;
    /**
     * 提醒设置,当值为NULL时，表示不提醒，当为-10时，表示提前10天提醒。
     */
    private Long ptAwokeDate;
    /**
     * 任务状态：A未下达，B未启动，C执行中，D待审核，E已关闭
     */
    private String ptStatus;
    /**
     * 项目任务的备注说明信息字段
     */
    private String ptRemark;
    /**
     * 项目任务属性集字段
     */
    private String ptPropsets;
    /**
     * 项目进度
     */
    private Integer ptProgress;
    /**
     * 排序字段
     */
    private String ptOrder;
    /**
     * 预估费用
     */
    private BigDecimal ptCost;


    /**
     * 预估费用单位：1-人民币元 2-美元 3-欧元
     */
    private String ptCostunit;

    /**
     * 一对一，项目类型对象
     */
    private PmPType pmPType;

    private PmActiveMain pmActiveMain;


    //基本属性定义
    /**
     * 创建者id
     */
    private Long ptCreator;
    /**
     * 创建时间
     */
    private Date ptCreDate;
    /**
     * 最后修改人id
     */
    private Long ptLastUpdator;
    /**
     * 最后修改日期
     */
    private Date ptLastUpdate;
    /**
     * 所有者ID
     */
    private Long ptOwner;
    /**
     * 所属部门ID
     */
    private Long ptOrgId;
    /**
     * 删除标记 T/F
     */
    private Boolean ptDelFlag;
    /**
     * 账套ID
     */
    private Long ptSetSid;

    /**
     * 依赖项
     */
    private String ptDependency;

    /**
     * 时间锁定  0 代表未锁定， 1 代表锁定
     */
    private String ptDatelock;

}
